package com.zql.LeetCode;

import com.zql.baseEntity.ListNode;

/**
 * Created By ShuHua on 2021/8/26.
 */
public class MiddleNode_876 {
    public ListNode middleNode(ListNode head) {
        if(head==null||head.next==null)return head;
        ListNode slow = head;
        ListNode fast = head;

        //这里要判断先fast不为空 不然会报空指针异常 因为fast每次会跳两个节点 这里注意fast！=null要写在前面 不然遍历到fast==null时 还是会出现空指针异常
        while(fast!=null&&fast.next!=null){
            slow=slow.next;
            fast=fast.next.next;
        }
        return slow;
    }
    public ListNode middleNode_error(ListNode head) {
        if(head==null||head.next==null)return head;
        ListNode slow = head;
        ListNode fast = head;

        //这里要判断先fast不为空 不然会报空指针异常 因为fast每次会跳两个节点
        while(fast.next!=null){
            slow=slow.next;
            fast=fast.next.next;
        }
        return slow;
    }
    public ListNode middleNode_error2(ListNode head) {
        if(head==null||head.next==null)return head;
        ListNode slow = head;
        ListNode fast = head;

        //这里要判断先fast不为空 不然会报空指针异常 因为fast每次会跳两个节点 这里注意fast！=null要写在前面 不然遍历到fast==null时 还是会出现空指针异常
        while(fast.next!=null&&fast!=null){
            slow=slow.next;
            fast=fast.next.next;
        }
        return slow;
    }

}
